Skip to content

Digitale Logik ​

Wir haben im letzten Thema die Bestandteile eines Prozessors kennengelernt, sowie deren Aufgaben bei der Abarbeitung von Programmen.

Nun schauen wir noch einen Schritt tiefer in die elektronischen Komponenten eines Computers hinein und beschäftigen uns dabei mit logischen Schaltungen.

Wir schauen uns dazu zuerst kurz an, was logische Schaltungen überhaupt sind und wie man diese beschreiben kann. Danach lernst du, selbst kleine Schaltungen zu entwerfen.

Abschliessen werden wir das Kapitel mit dem Design einer Halbaddierer-Schaltung. Solche Schaltungen stecken in modernen Prozessoren und sind für die einfache mathematische Operation der Addition von Zahlen zuständig.

🖥️ Präsentationen: Zu diesem Thema gibt es zwei Diskussions-Decks: Teil 1 – Gatter & Schaltungen und Teil 2 – Rechnen mit Gattern.

1. Schaltungen ​

Wie du weisst, kann ein Computer grundsätzlich nur mit 2 Zuständen umgehen: 0 und 1. Im Computer werden diese zwei Zustände physikalisch als Strom (1) und kein Strom (0) abgebildet. 💡

Digitale Schaltungen bilden den Grundbaustein für sämtliche Logik in Computern.

Feine Leiterbahnen auf einer Computerplatine

Schaltungen aus der echten Welt sind leider oft zu komplex, um sie im Detail anschauen zu können. Wir schauen uns darum für die Übungen vorerst abstrakte Beispiele an.

Eine Schaltung besteht aus einer Verknüpfung der folgenden Dinge:

  • Eingänge (einfache Vorstellung: Kabel mit/ohne Strom)
  • Ausgänge (einfache Vorstellung: Lampen, die leuchten oder nicht)
  • Kabel (Leitungen)
  • Logische Operatoren, welche die Funktion der Schaltung bestimmen

Schaltungen werden immer für einen spezifischen Zweck entworfen. Ein sehr einfaches Beispiel zur Veranschaulichung ausserhalb des Computers wäre das Licht in einem Raum. Wenn Strom fliesst (Schalter ist an, Zustand 1), sollen eine oder mehrere Lampen angehen, sonst nicht.

Schaltungen im Computer sind weitaus komplexer und haben viele Schalter (Eingänge) und Lampen, die leuchten sollen oder nicht (Ausgänge).

Merke: Eine digitale Schaltung hat also einen oder mehrere Ein- und Ausgänge. Die Ein- und Ausgänge haben zu jedem Zeitpunkt den Wert 0 (kein Strom) oder 1 (Strom).

Die folgende Schaltung hat zwei Eingänge (A und B) sowie zwei Ausgänge (X und Y):

ABSchaltungXY

Die Schaltung (in der roten Box) besteht aus einer Reihe von logischen Operatoren, welche die Funktion der Schaltung ausmachen. Mit Funktion meinen wir hier, welche Kombination von 0/1 bei den Eingängen A und B welche Kombination bei den Ausgängen X und Y ergibt.

Beispiel:

Eingabe:  A = 0,  B = 1
Ausgabe:  X = 1,  Y = 0

2. Wahrheitstabellen ​

Bevor wir uns die genaue Funktionsweise von Schaltungen anschauen, wollen wir Wahrheitstabellen als Methode zur Beschreibung von Schaltungen kennenlernen.

Jede digitale Schaltung kann durch eine Wahrheitstabelle beschrieben werden. In der Wahrheitstabelle werden für alle möglichen Eingabekombinationen die entsprechenden Ausgabewerte festgehalten.

ABY
000
011
101
111

Die Schaltung, welche in der oben stehenden Tabelle beschrieben wird, hat zwei Eingänge (A und B) und einen Ausgang (Y). Überlege dir kurz, was du anhand der Tabelle über diese Schaltung aussagen kannst. Siehst du eine Verbindung zum Programmierkurs vom letzten Semester?

Tipp: Der Ausgang ist genau dann 1, wenn A oder B (oder beide) 1 sind. Das erinnert nicht zufällig an das or aus dem Programmieren.

3. Ein- und Ausgänge ​

In den kommenden Aufgaben werden wir eigene kleine Schaltungen entwerfen. Dafür benötigen wir einfache Ein- und Ausgabemöglichkeiten.

Als Eingang dient ein Schalter, der entweder 0 (kein Strom) oder 1 (Strom) liefert. Als Ausgang dient eine Lampe, die leuchtet (1) oder dunkel bleibt (0):

Eingang (Schalter)0liefert 0 oder 1Ausgang (Lampe)0leuchtet bei 1

4. Aufbau von Schaltungen ​

4.1 Verbindungen ​

Wir lernen nun verschiedene logische Bauteile von Schaltungen kennen. Eine Schaltung ist lediglich eine Verknüpfung von Eingaben, Ausgaben und logischen Bauteilen.

Die einfachste Schaltung ist eine direkte Verbindung von Ein- und Ausgabe:

11

Eine Verbindung (Leitung) kann auch verzweigt werden. Die Verzweigung wird durch einen kleinen Kreis (Punkt) markiert:

111

Hinweis: Die beiden neuen Leitungen übertragen immer denselben Wert wie die Leitung, die verzweigt wurde. Um Leitungen zusammenzuführen, brauchen wir aber logische Bauteile, sogenannte Operatoren (auch Gatter genannt).

4.2 Operatoren (Gatter) ​

Wir schauen uns jetzt die wichtigsten Gatter an. Am besten probierst du gleich jedes davon im folgenden Simulator aus: Wähle oben ein Gatter, tippe die Schalter A und B an und beobachte, wann die Lampe am Ausgang leuchtet. Die aktuelle Zeile der Wahrheitstabelle wird jeweils hervorgehoben.

0A0B0Y

Tippe auf die Schalter (A, B), um die Eingänge umzustellen.

ABY
000
010
100
111

Das AND-Gatter liefert nur dann 1, wenn beide Eingänge 1 sind.

Unten findest du zu jedem Gatter zusätzlich die Wahrheitstabelle als Nachschlage-Referenz.

4.2.1 Inverter ​

Ein Inverter ist ein Operator mit einem Eingang. Der Ausgang hat den Wert 1, wenn der Eingang 0 hat, und umgekehrt. Das Signal wird also invertiert.

AY
01
10

Beispiel: Das Licht im Kühlschrank geht an, sobald die Türe nicht mehr auf den Knopf drückt. Der Türknopf ist der Eingang, das Licht der Ausgang – dazwischen liegt ein Inverter.

4.2.2 AND-Gatter ​

Das AND-Gatter hat zwei Eingänge und einen Ausgang. Der Ausgang hat nur dann den Wert 1, wenn beide Eingänge 1 sind.

ABY
000
010
100
111

Beispiel: In einer Kaffeemaschine wird der Motor für die Mühle aus Sicherheitsgründen nur dann aktiviert, wenn gleichzeitig der Deckel geschlossen und der Stromschalter aktiviert ist.

4.2.3 OR-Gatter ​

Beim OR-Gatter hat der Ausgang den Wert 1, wenn mindestens einer der Eingänge 1 ist.

ABY
000
011
101
111

Beispiel: In einem Haus soll die Eingangstüre sowohl aus der Wohnung im ersten Stock als auch aus der Wohnung im zweiten Stock per Knopf geöffnet werden können.

4.2.4 XOR-Gatter ​

Beim XOR-Gatter (englisch Exclusive OR) hat der Ausgang den Wert 1, wenn entweder A oder B 1 ist – aber nicht, wenn beide 1 sind.

ABY
000
011
101
110

4.2.5 NAND-Gatter ​

Das letzte Gatter, das wir uns anschauen, ist das NAND-Gatter. Der Name steht kurz für Not-AND; es ist einfach die Kombination eines AND-Gatters und eines Inverters. Der Ausgang ist also genau das Gegenteil vom AND.

ABY
001
011
101
110

Hinweis: Das NAND-Gatter hat eine besondere Bedeutung unter den logischen Gattern. Man kann beweisen, dass sich jede beliebige logische Schaltung ausschliesslich aus NAND-Gattern aufbauen lässt (diese Eigenschaft nennt man funktionale Vollständigkeit; nachgewiesen wurde sie 1913 vom Logiker Henry Sheffer, weshalb das NAND auch «Sheffer-Strich» heisst). Da NAND-Gatter zudem physikalisch besonders einfach herzustellen sind, bestehen moderne Prozessoren (und andere Chips) zu einem grossen Teil aus NAND-Gattern.

4.3 Selbsttest: Gatter erkennen ​

Erkennst du ein Gatter an seiner Wahrheitstabelle? Probier es aus:

Welches Gatter ist das?

Richtig: 0 / 0

Zu welchem Gatter gehört diese Wahrheitstabelle?

AY
01
10

4.4 Halbaddierer & Binäre Addition ​

Weiter oben wurde bereits erwähnt, dass alle mathematischen Operationen im Computer mit relativ einfachen (und manchmal auch sehr komplexen) Schaltungen durchgeführt werden. Im Folgenden schauen wir uns dies am einfachsten Beispiel an: der Addition.

Binäre Addition

Die Addition von zwei Binärzahlen funktioniert ganz ähnlich wie die schriftliche Addition von zwei Dezimalzahlen – nur, dass wir bereits bei 1 + 1 einen Übertrag erhalten. Es gelten diese vier Grundregeln:

RechnungErgebnisBedeutung
0 + 00kein Übertrag
0 + 11kein Übertrag
1 + 01kein Übertrag
1 + 110Ergebnis 0, Übertrag 1

Genau wie im Dezimalsystem rechnen wir Stelle für Stelle von rechts nach links und schleppen den Übertrag mit. Ein Beispiel – wir addieren 10112 (13) und 01102 (6):

    1 1        ← Überträge
    1 0 1 1     (11)
+   0 1 1 0     (6)
---------
  1 0 0 0 1     (17)

Das Ergebnis 100012 entspricht der Dezimalzahl 17 – die Rechnung stimmt also.

Wer die schriftliche binäre Addition nochmals in Ruhe erklärt haben möchte, findet hier ein gutes Video.

4.4.1 Der Halbaddierer ​

Ein Halbaddierer ist eine Schaltung, welche zwei einstellige Binärzahlen addieren kann. Er muss also genau die vier Rechnungen aus der Tabelle oben lösen können.

Die Schaltung benötigt 2 Eingänge (für die beiden Summanden A und B) und 2 Ausgänge: einen für die Einer-Stelle des Resultats und einen für die Zweier-Stelle (den Übertrag).

Die Wahrheitstabelle sieht so aus:

ABZweierEiner
0000
0101
1001
1110

Schaut man die beiden Ausgabespalten einzeln an, erkennt man zwei alte Bekannte:

  • Die Einer-Spalte entspricht genau einem XOR-Gatter (1, wenn genau einer der Eingänge 1 ist).
  • Die Zweier-Spalte (der Übertrag) entspricht genau einem AND-Gatter (1, nur wenn beide Eingänge 1 sind).

Die Idee des Halbaddierers ist also: Der Wert der Einer-Stelle wird durch ein XOR-Gatter berechnet, der Übertrag (Zweier-Stelle) durch ein AND-Gatter. Probier die Schaltung unten aus (Modus Halbaddierer):

XORAND0A0B0Einer0Zweier

Tippe auf die Schalter, um die Eingänge umzustellen.

0 + 0 = 002→ Zweier = 0, Einer = 0

4.4.2 Der Volladdierer ​

Ein Halbaddierer addiert, wie wir gesehen haben, zwei Bits und liefert das Resultat der Einer-Stelle und den Übertrag auf die Zweier-Stelle.

Aus unserem Halbaddierer können wir nun fast einen vollwertigen Addierer basteln. Wir haben aber noch ein Problem: Unser Halbaddierer berücksichtigt jeweils nur die beiden Summanden und nicht den Übertrag aus der vorherigen Stelle.

Wenn zwei mehrstellige Binärzahlen addiert werden sollen, muss dieser Übertrag mitgerechnet werden. Ab der zweiten Stelle passiert an jeder Stelle Folgendes:

  1. Die beiden Ziffern an der aktuellen Stelle werden addiert.
  2. Zum Zwischenresultat wird der Übertrag der vorherigen Stelle addiert.
  3. Das Resultat wird gespeichert, und der neue Übertrag wird an die nächste Stelle weitergegeben.

Genau das leistet der Volladdierer. Er besteht aus zwei Halbaddierern und einem OR-Gatter für den Übertrag: Der erste Halbaddierer addiert A und B, der zweite addiert dazu den hereinkommenden Übertrag Cin. Ein Übertrag entsteht dabei, wenn einer der beiden Halbaddierer einen Übertrag meldet – dafür sorgt das OR-Gatter.

Schalte den Simulator oben in den Modus Volladdierer und probiere z.B. 1 + 1 + 1 aus (alle drei Schalter auf 1): Das Ergebnis muss 112 sein – Summe 1, Übertrag 1.

5. Schaltungen selbst bauen ​

Jetzt bist du dran: Lies die Aufgabe, fülle die Wahrheitstabelle aus und baue die passende Schaltung. Füge Gatter über die Palette hinzu, verschiebe sie mit der Maus (oder dem Finger) und verbinde sie, indem du einen Ausgang und danach einen Eingang antippst. Mit den Eingangs-Schaltern kannst du deine Schaltung testen, bevor du auf Prüfen klickst.

Aufgabe 1 – Direkte Verbindung

1 / 16

Zum Aufwärmen: Verbinde den Eingang A direkt mit dem Ausgang Y. Der Ausgang soll immer denselben Wert haben wie der Eingang – ganz ohne Gatter. Tippe dazu den Ausgangs-Punkt (○) von A an und danach den Eingangs-Punkt (○) von Y.

Max. Gatter: 0 (verwendet: 0)Erlaubt: keine (direkt verbinden)
1. Wahrheitstabelle ausfüllen
AY
0·
1·
2. Schaltung bauen
Leitung: Ausgang ○ antippen, dann Eingang ○
A=0Y=?

6. Quiz ​

Digitale Logik – teste dein Wissen

Frage 1 von 6

Wann leuchtet die Lampe am Ausgang eines AND-Gatters?

7. Aufgaben ​

Aufgabe 1 – Wahrheitstabelle aufstellen ​

Stelle die Wahrheitstabelle für ein NOR-Gatter auf. Ein NOR-Gatter ist ein OR-Gatter mit nachgeschaltetem Inverter (also Not-OR).

Lösung anzeigen

Zuerst das OR bestimmen, dann jeden Ausgang invertieren:

ABORNOR (= invertiert)
0001
0110
1010
1110

Das NOR-Gatter liefert also nur dann 1, wenn beide Eingänge 0 sind.

Aufgabe 2 – Welches Gatter passt? ​

Eine Schaltung mit zwei Eingängen liefert die folgende Wahrheitstabelle. Um welches Gatter handelt es sich?

ABY
001
011
101
110
Lösung anzeigen

Der Ausgang ist nur dann 0, wenn beide Eingänge 1 sind – sonst immer 1. Das ist genau das Verhalten eines NAND-Gatters.

Aufgabe 3 – Halbaddierer nachvollziehen ​

Du gibst einem Halbaddierer die Eingänge A = 1 und B = 1. Welche Werte haben die Ausgänge Einer und Zweier, und welche Rechnung stellt das dar?

Lösung anzeigen
  • Einer (XOR): 1 XOR 1 = 0
  • Zweier (AND): 1 AND 1 = 1

Zusammengesetzt ergibt das die Binärzahl 102, also die Rechnung 1 + 1 = 2. Der Übertrag (Zweier) ist 1, die Einer-Stelle 0. ✓

8. Quellen ​

Viele der Inhalte, Aufgaben und Grafiken wurden in angepasster Form von den Inhalten der Kolleg:innen des Gymnasium Kirchenfelds übernommen.

Informatik & ICT Unterricht Neufeld